Many communication devices are capable of using a variety of content obtainable over communication networks. In particular, mobile devices such as mobile telephones, Personal Digital Assistants (PDAs), Smartphones and such like are now generally capable of using Web resources, such as Web pages. These Web resources may be specifically intended for mobile devices, such as content coded using Wireless Markup Language (WML) and obtainable using Wireless Application Protocol (WAP). With the advent of faster mobile communication networks, mobile devices are now also increasingly capable of using Web resources intended for wider use, e.g. by Personal Computers, such as content coded using HyperText Markup Language (HTML) and Extensible Markup Language (XML), in particular Extensible HyperText Markup Language (XHTML).
Due to the very different capabilities of different mobile devices, the various types of Web resources that are available may or may not be useable by a particular mobile device or might be used with different degrees of success by different mobile devices. This significantly detracts from users' experiences of accessing Web resources with their mobile devices. Whilst improved handling of Web resources can be attained to a large extent by browser functionality at the mobile device, it has also been suggested to adapt Web resources to suit the capabilities of a mobile device requesting the resource. So, rather than providing a Web resource in exactly the same way to every mobile device that requests it, Web servers increasingly adapt Web resources according to the capabilities of the mobile device requesting the resource. For example, a picture may be provided to a mobile device in an original size only if the screen of the mobile device is big enough to display it. If the mobile device does not have a big enough screen, the picture may be reduced to a suitable size before it is provided to the mobile device.
Much time and effort has been invested in collecting information about the capabilities of different mobile devices. These capabilities are usually defined in terms of device properties. One device property may be screen width. Another might be screen height. These device properties are made available for the use of Web developers in the form of databases of device properties for different mobile devices. Web resources can accordingly be designed according to the capabilities of particular mobile devices, as defined in the databases of device properties. Provided the type of mobile device requesting the Web resource is known, an appropriately designed Web resource can be provided to the mobile device and successfully used by the device.
It has been suggested to identify the type of mobile device requesting a Web resource from the request sent by the device for the Web resource to be provided to it. In particular, HTTP requests include a user agent string in a header. A user agent string is a string of characters usually containing the manufacturer, model and version number of the mobile device, the operating system it is using and so on. EP 1641211 suggests storing known user agent strings in a first look up table. The user agent string in an HTTP request is then compared to the look up table of known user agent strings to identify the mobile device that sent the HTTP request. A second look up table of policies governing code generation for Web resources to be provided to the identified device is then accessed and the Web resource is coded for provision to the mobile device based on the policies in the further look up table.
A problem with this approach is that there is a very large number of user agent strings in use. One type of mobile device may use numerous different user agent strings depending on the version of the mobile device or the versions of software the device is running. Furthermore, user agent strings may be altered as they travel through the communication network by the network itself. This means that a look up table of known user agent strings is likely to be large. There is also a strong likelihood of an exact match for the user agent string in the HTTP request not being present in the look up table. This can result in the device not being identified and it hence being impossible to implement any policies for generation of the Web resource.
Another problem is that the use of the two look up tables is slow. The whole of the user agent string in the HTTP request is first compared to known user agent strings in the first look up table to try to find a match. In the event that the match is found, the second look up table is located and appropriate policies extracted from that table. As the first look up table is large, it will be slow to search. The comparison and extraction processes also require significant processing time. So, there can be a noticeable extension to the time it takes to respond to the HTTP request using this method.
The present invention seeks to overcome these problems.